<?php
/**
 * 13、设计模式学习-策略模式
 * 支付控制器
 * 2019年12月24日15:54:45
 */
namespace Application\Controller;

class PayStrategyController extends BaseController
{
    // 支付方式
    protected $pay_type = array(
        'alipay',
        'wxpay',
    );
    // 策略模式概念较为简单、一般情况下开发者会自动运行
    public function index()
    {
        $pay_type = $_GET['pay_type']?:'alipay';
        if(!in_array($pay_type,$this -> pay_type)){
            echo '没有此支付方式';
            exit();
        }
        $namespace = '\\Application\\Common\\Strategy\\';
        $dispatch = $namespace.'Dispatch';
        $dispatch = new $dispatch();
        $pay_type = $namespace.ucfirst($pay_type);
        $pay_model = $dispatch -> payType(new $pay_type());
        $pay_model -> payHandle();
    }
}
